﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TwoDimensinalArray
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.1) Создается 2 - х мерный массив размером 4 на 5 элементов, заполненный случайными числами
            //1.2) Вывести массив на консоль
            //1.3) Заменить 5 - й элемент каждой строки суммой 4 - х предыдущих элементов этой строки
            //1.4) Вывести полученный результат на экран

            Console.WriteLine("Initial array");
            int[,] initialArray = FillTwoDimensionalArrayByRandomNumbers(4, 5, 1, 10);
            PrintTwoDimensionalArray(initialArray);
            Console.WriteLine();
            Console.WriteLine("Final array");
            int[,] finalArray = CreateFinalArray(initialArray);
            PrintTwoDimensionalArray(finalArray);
        }

        static int[,] FillTwoDimensionalArrayByRandomNumbers(int rowCount, int columnCount, int randomMinValue, int randomMaxValue)
        {
            int[,] array = new int[rowCount, columnCount];
            Random rnd = new Random();

            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    array[i, j] = rnd.Next(randomMinValue, randomMaxValue + 1);
                }
            }
            return array;
        }

        static void PrintTwoDimensionalArray(int[,] arrayForPrint)
        {
            for (int i = 0; i < arrayForPrint.GetLength(0); i++)
            {
                for (int j = 0; j < arrayForPrint.GetLength(1); j++)
                {
                    Console.Write("{0}\t", arrayForPrint[i, j]);
                }
                Console.WriteLine();
            }
        }

        static int[,] CreateFinalArray(int [,] initialArray)
        {
            for (int i = 0; i < 4; i++)
            {
                int sum = 0;
                for (int j = 0; j < 5 - 1; j++)
                {
                    sum = sum + initialArray[i,j];
                }
                initialArray.SetValue(sum, i, 5 - 1);
            }
            return initialArray;
        }
    }
}